﻿import { getagentConfig } from '../api/data'

// // function dowwsign(agent_id, corp_id, timestamp, nonceStr, signature) {
// //     alert("start");
// //     // var configParams = { debug: true, appId: app_id, timestamp: Timestamp, nonceStr: Nonce_str, signature: sign, jsApiList: ['checkJsApi'] };
// //     var configParams = '';
// //     var agentConfigParams = { debug: true, corpid: agent_id, agentid: corp_id, timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: ['selectExternalContact'] };

// //     dowwsign2(configParams, agentConfigParams);
// // }
// async function dowwsign2(configParams, agentConfigParams) {
//     try {
//         // console.info('WWOpenData control start')
//         // window.bhtmessage = "WWOpenData control start"
//         // if (/MicroMessenger/i.test(navigator.userAgent)) {
//         //     await config(configParams)
//         // }
//         // await agentConfig(agentConfigParams)
//         await agentConfig(agentConfigParams)

//         // WWOpenData object
//         // console.info('window.WWOpenData', window.WWOpenData)
//         // window.WWOpenData = "WWOpenData control start"
//         if (WWOpenData.checkSession) {
//             WWOpenData.checkSession({
//                 success() {
//                     console.info('open-data checkSession success')
//                     window.openData = "open-data checkSession success"
//                 },
//                 fail() {
//                     console.error('open-data checkSession fail')
//                 },
//             })
//         }

//         if (WWOpenData.on) {
//             /**
//              * ww-open-data render data changed
//              */
//             WWOpenData.on('update', event => {
//                 const openid = event.detail.element.getAttribute('openid')
//                 // console.info('render data changed', openid, event.detail.hasData)
//             })
//             /**
//              * ww-open-data fetch data fail
//              */
//             WWOpenData.on('error', () => {
//                 // console.error('fetch data fail')
//             })
//         }

//         WWOpenData.bindAll(document.querySelectorAll('ww-open-data'))

//         // console.info('WWOpenData control end')
//     } catch (error) {
//         // console.error('WWOpenData control error', error)
//     }
// }
// // async function config(config) {
// //     return new Promise((resolve, reject) => {
// //         wx.config(config)
// //         wx.ready(resolve)
// //         wx.error(reject)
// //     }).then(() => {
// //         console.info('wx.ready')
// //     }, error => {
// //         console.error('wx.error', error)
// //         throw error
// //     })
// // }
// async function agentConfig(config) {
//     return new Promise((success, fail) => {
//         wx.agentConfig({ ...config, success, fail })
//     }).then(res => {
//         // return res
//     }, error => {
//         console.log("error");
//         console.log(error)
//         console.log(config)
//         // throw error
//     }), success => {
//         // throw success
//     }
// }
// async function fetchwwsign() {
//     var urls = {
//         url: window.location.href.split('#')[0]
//     }
//     await getagentConfig(urls).then(res => {
//         if (res.code == 20000) {
//             // window.StrResult = StrResult
//             dowwsign(res.data.appId, res.data.agentid, res.data.timestamp, res.data.noncestr, res.data.signature);
//         }
//     });
//     /*  $.ajax({
//           url: "/Dan/DanAllDatas.aspx?v=2",
//           type: "GET",
//           data: {},
//           contentType: "text/plain; charset=utf-8",
//           dataType: "json",
//           success: function (p_datas) {
//               //bhtdanformer.closeloadding();
//               if (p_datas == null | p_datas.length == 0) return;
//               //json
//               //if (p_datas[0].message == "nologin") {
//               //    window.location.href = bhtdanformer.loginurl;
//               //    return;
//               //}
//               if (p_datas[0].result != "success" || p_datas[1].result != "success") return;
//               dowwsign(p_datas[0].app_id, p_datas[0].timestamp, p_datas[0].nonceStr, p_datas[0].sign, p_datas[1].corpid, p_datas[1].agentid, p_datas[1].timestamp, p_datas[1].nonceStr, p_datas[1].sign);
//           },
//           fail: function (p_error) {
//               //alert(p_error);
//           }

//       });*/
// }



// /*通用处理类解决树状加载,以及姓名展示等*/

// function txl_SetXingMing(p_gonghao, p_value) {
//     if (p_gonghao == "" | p_gonghao == undefined) return p_value;

//     if (p_value.indexOf("<ww") < 0) {
//         p_value = "<ww-open-data type=userName openid=" + p_gonghao + "></ww-open-data>";
//     }
//     return p_value;

// }

// function txl_SetDeptName(p_deptid) {
//     // if(p_deptid=="" | p_deptid ==undefined) return p_value;

//     //  if (p_value.indexOf("<ww") < 0) {
//     //     p_value ="<ww-open-data type=departmentName openid=" +p_deptid + "></ww-open-data>";
//     //   }
//     // return p_value;
//     let p_value = ""
//     if (p_deptid == "" || p_deptid == undefined) {
//         return p_deptid
//     } else {
//         p_value = "<ww-open-data type=departmentName openid=" + p_deptid + "></ww-open-data>";
//     }

//     return p_value

// }

// function txl_treeshow(p_treeid, p_node, p_isroot) {//遍历节点根据panelID查找相应的节点设置draggalbe为true

//     //if(window.IsOpenTxlShow  != true) return;
//     var t_node = p_node;
//     if (p_isroot == true) {
//         t_node = Ext.getCmp(p_treeid).getRootNode(); //获取树的根节点
//     }
//     if (t_node == undefined) return;
//     if (t_node.text != "0") {
//         if (txl_isNumber(t_node.text))  //数字且没有转化才做转化
//         {
//             if (t_node.text.indexOf("<ww") < 0) {
//                 t_node.setText("<ww-open-data type=\"departmentName\" openid=\"" + t_node.text + "\"></ww-open-data>");
//             }
//         }
//     }

//     var childnodes = t_node.childNodes; //获取根节点的子节点
//     for (var i = 0; i < childnodes.length; i++) {
//         var cNode = childnodes[i];
//         if (txl_isNumber(cNode.text)) {
//             if (cNode.text.indexOf("<ww") < 0) {
//                 cNode.setText("<ww-open-data type=\"departmentName\" openid=\"" + cNode.text + "\"></ww-open-data>");
//             }
//         }
//         if (cNode.hasChildNodes()) {
//             txl_treeshow(p_treeid, cNode, false);//递归调用
//         }
//     }
// }

// function txl_isNumber(val) {

//     var reg = /^[0-9]+.?[0-9]*$/;
//     if (!reg.test(val)) { return false; }
//     return true;

// }

function envjudge() {
    var isMobile = window.navigator.userAgent.match(
        /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
    ); // 是否手机端
    var isWx = /micromessenger/i.test(navigator.userAgent); // 是否微信
    var isComWx = /wxwork/i.test(navigator.userAgent); // 是否企业微信
    if (isComWx && isMobile) {
        //手机端企业微信
        return "com-wx-mobile";
    } else if (isComWx && !isMobile) {
        //PC端企业微信
        return "com-wx-pc";
    } else if (isWx && isMobile) {
        // 手机端微信
        return "wx-mobile";
    } else if (isWx && !isMobile) {
        // PC端微信
        return "wx-pc";
    } else {
        // PC端
        return "other";
    }
}
async function agentConfig(config) {
    return new Promise((success, fail) => {
        console.info('wx.agentConfig', config)
        wx.agentConfig({ ...config, success, fail })
    }).then(res => {
        console.info('wx.agentConfig success', res)
        return res
    }, error => {
        console.error('wx.agentConfig fail', error)
        throw error
    })
}
async function newagentConfig() {
    var urls = {
        url: window.location.href.split('#')[0]
    }
  agentConfig({})
  return;
    getagentConfig(urls).then(res => {
        if (res.code == 20000) {
            var agentConfigParams = {
                // debug: true,
                 beta: true,// 必须这么写，否则wx.invoke调用形式的jsapi会有问题
                corpid: res.data.appId,
                agentid: res.data.agentid,
                timestamp: res.data.timestamp,
                nonceStr: res.data.noncestr,
                signature: res.data.signature,
                jsApiList: ['selectExternalContact','sendChatMessage','getCurExternalContact','getContext']
            };
            agentConfig(agentConfigParams)

            // if (envjudge() == 'com-wx-pc') {
            //     // 登录成功存corpid，如果corpid不一样就证明是切换企业，就清缓存
            //     var cid = localStorage.getItem('corpid')
            //     // alert(cid)
            //     if (cid == undefined || cid == '' || cid == null) {
            //         // 如果cid不存在，那就存入cid并执行config
            //         // alert('cid=undefined')
            //         localStorage.setItem('corpid', res.data.appId)
            //         agentConfig(agentConfigParams)
            //     } else {
            //         //如果cid是否存在
            //         // alert('else')
            //         // alert(cid)
            //         // alert(res.data.appId)
            //         if (cid === res.data.appId) {
            //             // 如果cid等于再本地存的cid等于没有切换企业，此时不需要进行config
            //         } else {
            //             // 如果不一样证明切换企业，此时重新执行config
            //             agentConfig(agentConfigParams)
            //         }
            //     }
            // } else {
            //     agentConfig(agentConfigParams)
            // }
        }
    });
}
export {
    // fetchwwsign,
    newagentConfig,
    // txl_SetXingMing,
    // txl_SetDeptName

}

